/**
 * Name        : pokerles
 * Version     : 
 * Vendor      : 
 * Description : 
 */


#include "pokerles.h"
#include "view/FormMgr.h"
#include "FormTestaJogadas.h"

using namespace Osp::App;
using namespace Osp::Base;
using namespace Osp::System;
using namespace Osp::Ui;
using namespace Osp::Ui::Controls;

pokerles::pokerles()
{
}

pokerles::~pokerles()
{
}

Application*
pokerles::CreateInstance(void)
{
	// Create the instance through the constructor.
	return new pokerles();
}

bool
pokerles::OnAppInitializing(AppRegistry& appRegistry)
{
	bool testing = false;

	if(! testing){
		FormMgr *pFormMgr = new FormMgr();
		pFormMgr->Initialize();

		GetAppFrame()->GetFrame()->AddControl(*pFormMgr);

		pFormMgr->SetStarterForm(FormMgr::REQUEST_FORM_MENU, null);

		return true;

	}else{
		//Form *pForm = new Form(); example

		FormTestaJogadas *pForm = new FormTestaJogadas();

		pForm->Initialize();

		// Add the form to the frame
		Frame *pFrame = GetAppFrame()->GetFrame();
		pFrame->AddControl(*pForm);

		// Set the current form
		pFrame->SetCurrentForm(*pForm);

		// Draw and Show the form
		pForm->Draw();
		pForm->Show();

		return true;
	}


}

bool
pokerles::OnAppTerminating(AppRegistry& appRegistry, bool forcedTermination)
{
	// TODO:
	// Deallocate resources allocated by this application for termination.
	// The application's permanent data and context can be saved via appRegistry.

	return true;
}

void
pokerles::OnForeground(void)
{
	// TODO:
	// Start or resume drawing when the application is moved to the foreground.
}

void
pokerles::OnBackground(void)
{
	// TODO:
	// Stop drawing when the application is moved to the background.
}

void
pokerles::OnLowMemory(void)
{
	// TODO:
	// Free unused resources or close the application.
}

void
pokerles::OnBatteryLevelChanged(BatteryLevel batteryLevel)
{
	// TODO:
	// Handle any changes in battery level here.
	// Stop using multimedia features(camera, mp3 etc.) if the battery level is CRITICAL.
}

void
pokerles::OnScreenOn (void)
{
	// TODO:
	// Get the released resources or resume the operations that were paused or stopped in OnScreenOff().
}

void
pokerles::OnScreenOff (void)
{
	// TODO:
	//  Unless there is a strong reason to do otherwise, release resources (such as 3D, media, and sensors) to allow the device to enter the sleep mode to save the battery.
	// Invoking a lengthy asynchronous method within this listener method can be risky, because it is not guaranteed to invoke a callback before the device enters the sleep mode.
	// Similarly, do not perform lengthy operations in this listener method. Any operation must be a quick one.
}
